# 基础编程题3
"""
从身份证中读取生日和性别的逻辑如下：
18位身份证号码的第7-14位数字分别表示出生年、月、日，第17位数字表示性别，奇数表示男性，偶数表示女性；
程序实现效果如下所示：
——————身份证信息——————
请输入身份证信息：
220105200502134415
您的生日是：
2005年2月13日
您的性别是：
男
（#效果数据为演示数据#）
"""

import re

print("——————身份证信息——————")
id_num = input("请输入18身份证信息：\n")
reg = "(^[1-9]\\d{5}\\d{11}$)"
while len(id_num) != 18:
    id_num = input("请输入18位身份证信息：\n")
while len(id_num) == 18:
    if re.match(reg, id_num[0:17]):
        year = id_num[6:10]
        month = id_num[10:12]
        day = id_num[12:14]
        print("您的生日是：\n%s年%s月%s日" %(year, month, day))
        if int(id_num[16]) % 2 == 0:
            gender = "男"
        else:
            gender = "女"
        print("您的性别是：\n%s" %gender)
        break;
    else:
        id_num = input("请输入18位身份证信息：\n")
